Skip to content

fix: stop classifying a bare .abcd/ as managed-repo (iss-88)#109

Merged
REPPL merged 2 commits into
mainfrom
fix/iss-88-stray-abcd-classify
Jul 21, 2026
Merged

fix: stop classifying a bare .abcd/ as managed-repo (iss-88)#109
REPPL merged 2 commits into
mainfrom
fix/iss-88-stray-abcd-classify

Conversation

@REPPL

@REPPL REPPL commented Jul 21, 2026

Copy link
Copy Markdown
Owner

What

ahoy's classify treated the mere presence of an .abcd/ directory as a strong "managed" signal (strong = registered || abcdDir || markerFired), so a bare .abcd/ with no registration and no marker block overclaimed managed-repo. This drops abcdDir from the strong set — a stray .abcd/ now reports unmanaged-repo / unmanaged-folder.

Detector-first

TestClassifyStrayAbcdDirIsNotManaged (bare .abcd/, no .git, no marker) asserts the kind is not managed — watched fail, passes after.

Preserved

Both remaining strong signals still classify as managed: index registration, and a <!-- BEGIN ABCD --> marker block. abcdDir is still recorded in signals["abcd_dir"] (no dead variable, no JSON-surface change).

Two existing tests that encoded the old behaviour were corrected (with the reviewer confirming they don't mask a regression): one flips its expectation to unmanaged, the other plants a real marker block so its deeper hook-manifest assertion still exercises the managed path.

Checks

Full go test ./..., gofmt -l ., go vet ./... green. ruthless-reviewer: SHIP, no findings (verified the still-managed paths and the two test updates).

Ledger: resolves iss-88 (folded into this branch).

Assisted-by: Claude:claude-opus-4-8

REPPL added 2 commits July 21, 2026 10:44
ahoy folder classification computed the strong (managed) signal as
`registered || abcdDir || markerFired`, so the mere presence of an
`.abcd/` directory promoted a folder to managed-repo even with no index
registration and no marker block. A repo carrying a stray `.abcd/` thus
overclaimed managed-repo.

Drop `.abcd/` from the strong set: only index registration or a marker
block promotes to managed. A stray `.abcd/` now reports unmanaged-repo
(git repo) or unmanaged-folder (no git). No new FolderKind is introduced.

Detector-first: TestClassifyStrayAbcdDirIsNotManaged asserts a bare
`.abcd/` is not managed. Two existing tests encoded the old bug:
TestClassifyManagedRepoByAbcdDir asserted `.git`+`.abcd` => managed
(repurposed to assert unmanaged-repo), and TestDetectHookManifestGap-
OnBrokenPlugin relied on a bare `.abcd/` to reach the gap-detection path
(now planted a marker block to make the folder genuinely managed).

Assisted-by: Claude:claude-opus-4-8
@REPPL
REPPL merged commit b858cdd into main Jul 21, 2026
12 checks passed
@REPPL
REPPL deleted the fix/iss-88-stray-abcd-classify branch July 21, 2026 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant